Advances in computer technology (e.g., microprocessor speed, memory capacity, data transfer bandwidth, software functionality . . . ) have generally contributed to increased computer application in various industries, such that organization of computer systems has changed dramatically. The concept of a large computer center with a single large computer to which all users bring their work is obsolete. Similarly, Data Base Management Systems (DBMS systems) have long since moved from a centralized mainframe environment to a de-centralized or distributed environment. One or more PC “client” systems, for instance, can be connected via a network to one or more server-based database systems (SQL database server). Known examples of computer networks include local-area networks (LANs) where the computers are geographically close together (e.g., in the same building), and wide-area networks (WANs) where the computers are farther apart and are connected by telephone lines or radio waves.
Often, networks are configured as “client/server” networks, such that each computer on the network is either a “client” or a “server.” Servers are powerful computers or processes dedicated to managing shared resources, such as storage (e.g. disk drives), printers, modems, or the like. Servers are often dedicated, meaning that they perform no other tasks besides their server tasks. For instance, a database server is a computer system that manages database information, including processing database queries from various clients. The client part of this client-server architecture typically comprises PCs or workstations which rely on server(s) to perform operations. Typically, a client runs a “client application” that relies on a server to perform some operations, such as returning particular database information. Over such networks various protocols that
transport information according to specifications, while at the same time accompany other request-response protocols have emerged.
One such protocol is the TDS protocol, which is a message oriented application level protocol employed for transfer of requests and responses between client and server systems, and can include native support for traditional Structured Query Language (SQL) data types, such as character (char), variable-length character (vchar), binary (blob), date-time, time stamp, together with some support for vendor-specific data types. In systems employing TDS it is typical for a client, such as a user or application program, to establish a long-lived connection with a server, such as a database system. Upon a successful hand shake and establishment of the connection via any suitable supported transport/session level protocol, a complete message is sent from client to server after which a complete response is sent from server to client.
Generally, some prior versions of the TDS protocol were not adapted to designate whether down level clients and new clients can communicate with down level servers or new servers. In addition, various requirements of the protocol could typically create potential inefficiencies in utilizing a system's resources. For example, to send large values in the form of <length> followed by <stream of bytes> can require computation, and allocation of a CPU memory, which could have other wise been employed for completion of higher priority tasks. As another example, during a re-set operation the client driver typically does not know if the re-set operation had succeeded or not, until the submitted request has been completed. As such, long running requests could imply long wait times to determine whether a re-set operation had succeeded or not, and while the driver was pending confirmation of success of a reset operation, other requests on the same connection were blocked, as it was uncertain whether the connection was usable or not.
At the same time in some cases it can be desirable for a client driver to cancel a command executing in the server without rolling back the current transaction. Likewise, it can be desirable to reduce administration over head when employing a TDS protocol in a network environment. For example, having administrators assigned to resetting user expired passwords can increase costs and reduce productivity.
Therefore, there is a need to overcome deficiencies associated with conventional systems.